class Window {
    public Window(int marker) {
        System.out.println("Window(" + marker + ")");
    }
}

class House {
    Window_ window1 = new Window_(1);

    House() {
        System.out.println("House()");
        window3 = new Window_(33);
    }

    Window_ window2 = new Window_(2);

    void f() {
        System.out.println("f()");
    }

    Window_ window3 = new Window_(3);
}

public class InitializationOrder {
    public static void main(String[] args) {
        House h = new House();
        h.f();
    }
}

/*
Window(1)
Window(2)
Window(3)
House()
Window(33)
f()

类中的变量定义顺序决定了初始化的顺序。
即使分散到方法定义之间，变量定义仍然会在任何方法（包括构造器）调用之前就被初始化。
 */
